import axios from 'axios';
import { Message,Loading } from 'element-ui';
import router from './router'

let loading;

// 加载动画
function startLoading() {
    loading = Loading.service({
        lock: true,
        text: '拼命加载中',
        background: 'rgba(0,0,0,0.7)'
    });
}

function endLoading() {
    loading.close();
}

// 请求拦截
axios.interceptors.request.use(
    config => {
        // 加载动画
         startLoading();

        if(localStorage.token) {
            // 配置请求头
            config.headers.Authorization = localStorage.token;
        }

        return config;
    },
    error => {
        return Promise.reject(error);
    }
);


// 响应拦截
axios.interceptors.response.use(response =>{
    // 结束加载
    endLoading();
    return response;
}, error => {
    // 错误提醒
    endLoading();
    Message.error(error.response.data);
    // 获取错误状态码
    const { status } = error.response;
    if(status == 401) {
        Message.error("请重新登录！");
        // 清楚token
        localStorage.removeItem('token');
        router.push('/index')
    }

    return Promise.reject(error);
})

export default axios;